package com.quartzd.demo;

import com.quartzd.consts.JobConst;
import com.quartzd.core.job.QuartzJob;
import org.quartz.JobExecutionContext;

/**
 * 描述：demo
 *
 * @author huxuehao
 **/
public class DemoQuartzJob extends QuartzJob {
    /**
     * 执行的核心方法
     * @param context job 上下文
     */
    @Override
    public Object doJob(JobExecutionContext context) {
        // 获取我自己传递的对象（数据）
        String dataMap = getDataMap(JobConst.DATA_MAP_KEY, String.class);
        System.out.println("dataMap==>" + dataMap);

        // 引入原本需要通过@Autowired方式注入的对象
        DemoBean demoBean = getBean(DemoBean.class);
        demoBean.doSomething();

        // 将消息持久化到content字段（参数需有toString()方法）
        putRunMsg("执行成功");

        return "DemoQuartzJob 执行完成";
    }

    /**
     * doJob 执行之前的插槽，可选
     * @param context job 上下文
     */
    @Override
    public void beforeDoJob(JobExecutionContext context) {
        System.out.println("DemoQuartzJob 准备开始执行");
    }

    /**
     * doJob 执行之后的插槽，可选
     * @param context job 上下文
     */
    @Override
    public void afterDoJob(JobExecutionContext context, Object result) {
        System.out.println("DemoQuartzJob 执行结束，执行结果：" + result.toString());
    }
}
